﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Xml;


namespace Voluntariar.WEB.Include.Handler
{
    public class AutoCompleteElementoDespesa : Util.HandlerBase
    {

        #region Atributos
        private string valorBusca;
        private StringBuilder sbHtml;
        #endregion

        #region Eventos

        public override void ProcessRequest(HttpContext httpContext)
        {
            try
            {
                base.ProcessRequest(httpContext);

                this.CarregarXml();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        #endregion

        #region Métodos

        private void CarregarXml()
        {
            CarregarParametros();

            //ElementoDespesa elementoDespesa = new ElementoDespesa();
            //elementoDespesa.Descricao = this.valorBusca;
            //XmlDocument xml = new Negocio.Facade.EO.DisponibilidadeFacade().GerarXmlElementoDespesa(elementoDespesa);

            //RetornaXml(xml);
        }
        /// <summary>
        /// Carrega dados para Suggest
        /// </summary>
        private void CarregarDados()
        {
            CarregarParametros();

            this.sbHtml = new StringBuilder();
            ListarResultadoBusca();
            // Resposta
            base.httpContext.Response.Write(this.sbHtml.ToString());
        }
        /// <summary>
        /// Carrega os parâmetros.
        /// </summary>
        private void CarregarParametros()
        {
            this.valorBusca = base.RecuperarParametroString("q");

            if (!string.IsNullOrEmpty(this.valorBusca))
                this.valorBusca = this.valorBusca.Replace("\"", "").Replace("*", "").Replace("%", "");
        }
        /// <summary>
        /// Lista os resultados da busca.
        /// </summary>
        private void ListarResultadoBusca()
        {
            if (!string.IsNullOrEmpty(valorBusca))
            {
                if (valorBusca.Length > 2)
                {
                    //SubElemento objSubElemento = new SubElemento();
                    //objSubElemento.Descricao = valorBusca;

                    //List<SubElemento> Lista = new Negocio.Facade.PO.ItemFacade().PesquisarSubElementoDespesa(objSubElemento);

                    //if (Lista != null)
                    //{
                    //    int cont = 0;

                    //    foreach (SubElemento elemento in Lista)
                    //    {
                    //        sbHtml.AppendFormat("{0}|\n", elemento.Descricao.Replace("|", ""));

                    //        cont++;

                    //        if (cont == 5)
                    //            break;
                    //    }
                    //}
                }
            }
        }

        /// <summary>
        /// Retorna informações carregadas do banco
        /// </summary>
        /// <param name="objXml">Documento XML</param>
        private void RetornaXml(XmlDocument objXml)
        {
            base.httpContext.Response.Clear();
            base.httpContext.Response.ClearContent();
            base.httpContext.Response.ClearHeaders();
            base.httpContext.Response.ContentType = "text/xml";
            base.httpContext.Response.Write(objXml.OuterXml);
        }

        #endregion
    }
}